1. Field of the Invention
The present general inventive concept relates to a booting system to sequentially perform a booting operation concurrently with storing boot codes, an image forming apparatus having the booting system, and a control method thereof.
2. Description of the Related Art
A typical personal digital assistant (PDA), mobile phone, set top box, or image forming apparatus, such as a copy machine or printer, employs an automatic booting system that automatically performs a booting operation upon application of power.
In this automatic booting system, a number of initialization functions are carried out by executing a program installed in a basic input/output system (BIOS). Such functions generally include a function to check a complementary metal oxide semiconductor (CMOS) setup for custom setting, a function to load an interrupt handler and device drivers, a function to reset registers and a device manager, a function to perform a power-on self-test (POST) for installed constituent elements, such as disc drives, or peripheral devices, a function to display system settings, a function to determine which constituent elements are drivable, and a function to start a bootstrap sequence.
In generally, the BIOS (or booting) program is stored in a read only memory (ROM), electrically erasable programmable read only memory (EEPROM) or NOR flash memory.
Recently, there has been a need for a memory that is cost-effective and supports high-speed access and large capacity due to the growth of system markets and the service diversity, high functionality and high capacity of systems. However, the NOR flash memory has a limitation in meeting such a need.
On the other hand, a NAND flash memory is widely used as a large-capacity memory, because it is easy to implement with a large capacity in terms of a memory structure and can be manufactured at lower cost than the NOR flash memory. Also, since the NAND flash memory can be manufactured more easily than the NOR flash memory and has a better integration than the NOR flash memory, it has been proposed to be used for the purpose of storing the booting program.
One example of an automatic booting system having a NAND flash memory to store a booting program is described in U.S. Pat. No. 5,535,357.
Referring to FIG. 1, a conventional automatic booting system 1 has a central processing unit (CPU) core 11 to interface with a NAND flash memory 30 and a system memory 40 via a system bus 10.
A NAND flash memory controller 20 acts to temporarily store data therein and transfer the stored data between the CPU core 11 and the NAND flash memory 30. To this end, the NAND flash memory controller 20 includes a bus interface 21 to interface with the CPU core 11 and system memory 40 via the system bus 10, and a memory interface 23 to interface with the NAND flash memory 30. Here, a NOR interface logic can be applied to the bus interface 21, and a NAND interface logic can be applied to the memory interface 23.
The NAND flash memory controller 20 further includes a control logic 24, and a register 25.
After a loading operation to store all boot codes of the NAND flash memory 30 in an internal memory 22 is completed, the CPU core 11 executes a booting operation using the boot codes. After the booting operation is completed, the CPU core 11 performs a configuration of the system memory 40 (DRAM configuration) and then stores an operating system (OS) program and user data stored in the NAND flash memory 30 in the system memory 40.
Thereafter, the CPU core 11 jumps to the OS program stored in the system memory 40 to control the operation of an associated system.
However, in the conventional booting system, because the CPU core can access the boot codes just after all the boot codes of the NAND flash memory are stored in the internal memory, the actual booting by the CPU core is delayed, resulting in a degradation in system performance.
Further, the transmission of the boot codes from the flash memory to the internal memory is processed at a low speed and the processing speed of the system is then changed to a high speed through one process for execution of the booting operation. As a result, a large amount of time is required for the transmission of the boot codes to the internal memory, thereby increasing the total booting time.
In addition, in order to store all the boot codes, the internal memory must have a large capacity, resulting in increases in size and cost thereof.